#pragma once

// 维持一个连接的MQTT客户端，提供订阅和发送的功能

#define MQTT_ADDR "ws://192.168.116.1:1883"
#define MQTT_CLIENT_ID "d13da86e-6a08-415a-99f6-d110a788d2ee"
#define MQTT_SEND_TOPIC "gateway_to_web"
#define MQTT_RECV_TOPIC "web_to_gateway"

/**
 * @brief 初始化mqtt客户端
 * @return int 0表示成功，其他表示失败
 */
int app_mqtt_init(void);

/**
 * @brief 向一个主题发送数据
 * @param data 要发送的数据
 * @return int 0表示成功，其他表示失败
 */
int app_mqtt_send(char *data);

/**
 * @brief 注册一个接受数据的回调函数
 * @param callback 回调函数
 * @return int 0表示成功，其他表示失败
 */
int app_mqtt_register_recv_callback(int (*callback)(char *data));

/**
 * @brief 销毁mqtt客户端
 * @return void
 */
void app_mqtt_destroy(void);
